package com.example.demo.packageModel;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.List;
/**
*
*  @author author
*/
public class emp implements Serializable {

    private static final long serialVersionUID = 1595467594001L;


    /**
    * 
    * isNullAble:1
    */
    private Integer empno;

    /**
    * 
    * isNullAble:1
    */
    private String ename;

    /**
    * 
    * isNullAble:1
    */
    private String job;

    /**
    * 
    * isNullAble:1
    */
    private Integer mgr;

    /**
    * 
    * isNullAble:1
    */
    private java.time.LocalDate hiredate;

    /**
    * 
    * isNullAble:1
    */
    private java.math.BigDecimal sal;

    /**
    * 
    * isNullAble:1
    */
    private java.math.BigDecimal comm;

    /**
    * 
    * isNullAble:1
    */
    private Integer deptno;


    public void setEmpno(Integer empno){this.empno = empno;}

    public Integer getEmpno(){return this.empno;}

    public void setEname(String ename){this.ename = ename;}

    public String getEname(){return this.ename;}

    public void setJob(String job){this.job = job;}

    public String getJob(){return this.job;}

    public void setMgr(Integer mgr){this.mgr = mgr;}

    public Integer getMgr(){return this.mgr;}

    public void setHiredate(java.time.LocalDate hiredate){this.hiredate = hiredate;}

    public java.time.LocalDate getHiredate(){return this.hiredate;}

    public void setSal(java.math.BigDecimal sal){this.sal = sal;}

    public java.math.BigDecimal getSal(){return this.sal;}

    public void setComm(java.math.BigDecimal comm){this.comm = comm;}

    public java.math.BigDecimal getComm(){return this.comm;}

    public void setDeptno(Integer deptno){this.deptno = deptno;}

    public Integer getDeptno(){return this.deptno;}
    @Override
    public String toString() {
        return "emp{" +
                "empno='" + empno + '\'' +
                "ename='" + ename + '\'' +
                "job='" + job + '\'' +
                "mgr='" + mgr + '\'' +
                "hiredate='" + hiredate + '\'' +
                "sal='" + sal + '\'' +
                "comm='" + comm + '\'' +
                "deptno='" + deptno + '\'' +
            '}';
    }

    public static Builder Build(){return new Builder();}

    public static ConditionBuilder ConditionBuild(){return new ConditionBuilder();}

    public static UpdateBuilder UpdateBuild(){return new UpdateBuilder();}

    public static QueryBuilder QueryBuild(){return new QueryBuilder();}

    public static class UpdateBuilder {

        private emp set;

        private ConditionBuilder where;

        public UpdateBuilder set(emp set){
            this.set = set;
            return this;
        }

        public emp getSet(){
            return this.set;
        }

        public UpdateBuilder where(ConditionBuilder where){
            this.where = where;
            return this;
        }

        public ConditionBuilder getWhere(){
            return this.where;
        }

        public UpdateBuilder build(){
            return this;
        }
    }

    public static class QueryBuilder extends emp{
        /**
        * 需要返回的列
        */
        private Map<String,Object> fetchFields;

        public Map<String,Object> getFetchFields(){return this.fetchFields;}

        private List<Integer> empnoList;

        public List<Integer> getEmpnoList(){return this.empnoList;}

        private Integer empnoSt;

        private Integer empnoEd;

        public Integer getEmpnoSt(){return this.empnoSt;}

        public Integer getEmpnoEd(){return this.empnoEd;}

        private List<String> enameList;

        public List<String> getEnameList(){return this.enameList;}


        private List<String> fuzzyEname;

        public List<String> getFuzzyEname(){return this.fuzzyEname;}

        private List<String> rightFuzzyEname;

        public List<String> getRightFuzzyEname(){return this.rightFuzzyEname;}
        private List<String> jobList;

        public List<String> getJobList(){return this.jobList;}


        private List<String> fuzzyJob;

        public List<String> getFuzzyJob(){return this.fuzzyJob;}

        private List<String> rightFuzzyJob;

        public List<String> getRightFuzzyJob(){return this.rightFuzzyJob;}
        private List<Integer> mgrList;

        public List<Integer> getMgrList(){return this.mgrList;}

        private Integer mgrSt;

        private Integer mgrEd;

        public Integer getMgrSt(){return this.mgrSt;}

        public Integer getMgrEd(){return this.mgrEd;}

        private List<java.time.LocalDate> hiredateList;

        public List<java.time.LocalDate> getHiredateList(){return this.hiredateList;}

        private java.time.LocalDate hiredateSt;

        private java.time.LocalDate hiredateEd;

        public java.time.LocalDate getHiredateSt(){return this.hiredateSt;}

        public java.time.LocalDate getHiredateEd(){return this.hiredateEd;}

        private List<java.math.BigDecimal> salList;

        public List<java.math.BigDecimal> getSalList(){return this.salList;}

        private java.math.BigDecimal salSt;

        private java.math.BigDecimal salEd;

        public java.math.BigDecimal getSalSt(){return this.salSt;}

        public java.math.BigDecimal getSalEd(){return this.salEd;}

        private List<java.math.BigDecimal> commList;

        public List<java.math.BigDecimal> getCommList(){return this.commList;}

        private java.math.BigDecimal commSt;

        private java.math.BigDecimal commEd;

        public java.math.BigDecimal getCommSt(){return this.commSt;}

        public java.math.BigDecimal getCommEd(){return this.commEd;}

        private List<Integer> deptnoList;

        public List<Integer> getDeptnoList(){return this.deptnoList;}

        private Integer deptnoSt;

        private Integer deptnoEd;

        public Integer getDeptnoSt(){return this.deptnoSt;}

        public Integer getDeptnoEd(){return this.deptnoEd;}

        private QueryBuilder (){
            this.fetchFields = new HashMap<>();
        }

        public QueryBuilder empnoBetWeen(Integer empnoSt,Integer empnoEd){
            this.empnoSt = empnoSt;
            this.empnoEd = empnoEd;
            return this;
        }

        public QueryBuilder empnoGreaterEqThan(Integer empnoSt){
            this.empnoSt = empnoSt;
            return this;
        }
        public QueryBuilder empnoLessEqThan(Integer empnoEd){
            this.empnoEd = empnoEd;
            return this;
        }


        public QueryBuilder empno(Integer empno){
            setEmpno(empno);
            return this;
        }

        public QueryBuilder empnoList(Integer ... empno){
            this.empnoList = solveNullList(empno);
            return this;
        }

        public QueryBuilder empnoList(List<Integer> empno){
            this.empnoList = empno;
            return this;
        }

        public QueryBuilder fetchEmpno(){
            setFetchFields("fetchFields","empno");
            return this;
        }

        public QueryBuilder excludeEmpno(){
            setFetchFields("excludeFields","empno");
            return this;
        }

        public QueryBuilder fuzzyEname (List<String> fuzzyEname){
            this.fuzzyEname = fuzzyEname;
            return this;
        }

        public QueryBuilder fuzzyEname (String ... fuzzyEname){
            this.fuzzyEname = solveNullList(fuzzyEname);
            return this;
        }

        public QueryBuilder rightFuzzyEname (List<String> rightFuzzyEname){
            this.rightFuzzyEname = rightFuzzyEname;
            return this;
        }

        public QueryBuilder rightFuzzyEname (String ... rightFuzzyEname){
            this.rightFuzzyEname = solveNullList(rightFuzzyEname);
            return this;
        }

        public QueryBuilder ename(String ename){
            setEname(ename);
            return this;
        }

        public QueryBuilder enameList(String ... ename){
            this.enameList = solveNullList(ename);
            return this;
        }

        public QueryBuilder enameList(List<String> ename){
            this.enameList = ename;
            return this;
        }

        public QueryBuilder fetchEname(){
            setFetchFields("fetchFields","ename");
            return this;
        }

        public QueryBuilder excludeEname(){
            setFetchFields("excludeFields","ename");
            return this;
        }

        public QueryBuilder fuzzyJob (List<String> fuzzyJob){
            this.fuzzyJob = fuzzyJob;
            return this;
        }

        public QueryBuilder fuzzyJob (String ... fuzzyJob){
            this.fuzzyJob = solveNullList(fuzzyJob);
            return this;
        }

        public QueryBuilder rightFuzzyJob (List<String> rightFuzzyJob){
            this.rightFuzzyJob = rightFuzzyJob;
            return this;
        }

        public QueryBuilder rightFuzzyJob (String ... rightFuzzyJob){
            this.rightFuzzyJob = solveNullList(rightFuzzyJob);
            return this;
        }

        public QueryBuilder job(String job){
            setJob(job);
            return this;
        }

        public QueryBuilder jobList(String ... job){
            this.jobList = solveNullList(job);
            return this;
        }

        public QueryBuilder jobList(List<String> job){
            this.jobList = job;
            return this;
        }

        public QueryBuilder fetchJob(){
            setFetchFields("fetchFields","job");
            return this;
        }

        public QueryBuilder excludeJob(){
            setFetchFields("excludeFields","job");
            return this;
        }

        public QueryBuilder mgrBetWeen(Integer mgrSt,Integer mgrEd){
            this.mgrSt = mgrSt;
            this.mgrEd = mgrEd;
            return this;
        }

        public QueryBuilder mgrGreaterEqThan(Integer mgrSt){
            this.mgrSt = mgrSt;
            return this;
        }
        public QueryBuilder mgrLessEqThan(Integer mgrEd){
            this.mgrEd = mgrEd;
            return this;
        }


        public QueryBuilder mgr(Integer mgr){
            setMgr(mgr);
            return this;
        }

        public QueryBuilder mgrList(Integer ... mgr){
            this.mgrList = solveNullList(mgr);
            return this;
        }

        public QueryBuilder mgrList(List<Integer> mgr){
            this.mgrList = mgr;
            return this;
        }

        public QueryBuilder fetchMgr(){
            setFetchFields("fetchFields","mgr");
            return this;
        }

        public QueryBuilder excludeMgr(){
            setFetchFields("excludeFields","mgr");
            return this;
        }

        public QueryBuilder hiredateBetWeen(java.time.LocalDate hiredateSt,java.time.LocalDate hiredateEd){
            this.hiredateSt = hiredateSt;
            this.hiredateEd = hiredateEd;
            return this;
        }

        public QueryBuilder hiredateGreaterEqThan(java.time.LocalDate hiredateSt){
            this.hiredateSt = hiredateSt;
            return this;
        }
        public QueryBuilder hiredateLessEqThan(java.time.LocalDate hiredateEd){
            this.hiredateEd = hiredateEd;
            return this;
        }


        public QueryBuilder hiredate(java.time.LocalDate hiredate){
            setHiredate(hiredate);
            return this;
        }

        public QueryBuilder hiredateList(java.time.LocalDate ... hiredate){
            this.hiredateList = solveNullList(hiredate);
            return this;
        }

        public QueryBuilder hiredateList(List<java.time.LocalDate> hiredate){
            this.hiredateList = hiredate;
            return this;
        }

        public QueryBuilder fetchHiredate(){
            setFetchFields("fetchFields","hiredate");
            return this;
        }

        public QueryBuilder excludeHiredate(){
            setFetchFields("excludeFields","hiredate");
            return this;
        }

        public QueryBuilder salBetWeen(java.math.BigDecimal salSt,java.math.BigDecimal salEd){
            this.salSt = salSt;
            this.salEd = salEd;
            return this;
        }

        public QueryBuilder salGreaterEqThan(java.math.BigDecimal salSt){
            this.salSt = salSt;
            return this;
        }
        public QueryBuilder salLessEqThan(java.math.BigDecimal salEd){
            this.salEd = salEd;
            return this;
        }


        public QueryBuilder sal(java.math.BigDecimal sal){
            setSal(sal);
            return this;
        }

        public QueryBuilder salList(java.math.BigDecimal ... sal){
            this.salList = solveNullList(sal);
            return this;
        }

        public QueryBuilder salList(List<java.math.BigDecimal> sal){
            this.salList = sal;
            return this;
        }

        public QueryBuilder fetchSal(){
            setFetchFields("fetchFields","sal");
            return this;
        }

        public QueryBuilder excludeSal(){
            setFetchFields("excludeFields","sal");
            return this;
        }

        public QueryBuilder commBetWeen(java.math.BigDecimal commSt,java.math.BigDecimal commEd){
            this.commSt = commSt;
            this.commEd = commEd;
            return this;
        }

        public QueryBuilder commGreaterEqThan(java.math.BigDecimal commSt){
            this.commSt = commSt;
            return this;
        }
        public QueryBuilder commLessEqThan(java.math.BigDecimal commEd){
            this.commEd = commEd;
            return this;
        }


        public QueryBuilder comm(java.math.BigDecimal comm){
            setComm(comm);
            return this;
        }

        public QueryBuilder commList(java.math.BigDecimal ... comm){
            this.commList = solveNullList(comm);
            return this;
        }

        public QueryBuilder commList(List<java.math.BigDecimal> comm){
            this.commList = comm;
            return this;
        }

        public QueryBuilder fetchComm(){
            setFetchFields("fetchFields","comm");
            return this;
        }

        public QueryBuilder excludeComm(){
            setFetchFields("excludeFields","comm");
            return this;
        }

        public QueryBuilder deptnoBetWeen(Integer deptnoSt,Integer deptnoEd){
            this.deptnoSt = deptnoSt;
            this.deptnoEd = deptnoEd;
            return this;
        }

        public QueryBuilder deptnoGreaterEqThan(Integer deptnoSt){
            this.deptnoSt = deptnoSt;
            return this;
        }
        public QueryBuilder deptnoLessEqThan(Integer deptnoEd){
            this.deptnoEd = deptnoEd;
            return this;
        }


        public QueryBuilder deptno(Integer deptno){
            setDeptno(deptno);
            return this;
        }

        public QueryBuilder deptnoList(Integer ... deptno){
            this.deptnoList = solveNullList(deptno);
            return this;
        }

        public QueryBuilder deptnoList(List<Integer> deptno){
            this.deptnoList = deptno;
            return this;
        }

        public QueryBuilder fetchDeptno(){
            setFetchFields("fetchFields","deptno");
            return this;
        }

        public QueryBuilder excludeDeptno(){
            setFetchFields("excludeFields","deptno");
            return this;
        }
        private <T>List<T> solveNullList(T ... objs){
            if (objs != null){
            List<T> list = new ArrayList<>();
                for (T item : objs){
                    if (item != null){
                        list.add(item);
                    }
                }
                return list;
            }
            return null;
        }

        public QueryBuilder fetchAll(){
            this.fetchFields.put("AllFields",true);
            return this;
        }

        public QueryBuilder addField(String ... fields){
            List<String> list = new ArrayList<>();
            if (fields != null){
                for (String field : fields){
                    list.add(field);
                }
            }
            this.fetchFields.put("otherFields",list);
            return this;
        }
        @SuppressWarnings("unchecked")
        private void setFetchFields(String key,String val){
            Map<String,Boolean> fields= (Map<String, Boolean>) this.fetchFields.get(key);
            if (fields == null){
                fields = new HashMap<>();
            }
            fields.put(val,true);
            this.fetchFields.put(key,fields);
        }

        public emp build(){return this;}
    }


    public static class ConditionBuilder{
        private List<Integer> empnoList;

        public List<Integer> getEmpnoList(){return this.empnoList;}

        private Integer empnoSt;

        private Integer empnoEd;

        public Integer getEmpnoSt(){return this.empnoSt;}

        public Integer getEmpnoEd(){return this.empnoEd;}

        private List<String> enameList;

        public List<String> getEnameList(){return this.enameList;}


        private List<String> fuzzyEname;

        public List<String> getFuzzyEname(){return this.fuzzyEname;}

        private List<String> rightFuzzyEname;

        public List<String> getRightFuzzyEname(){return this.rightFuzzyEname;}
        private List<String> jobList;

        public List<String> getJobList(){return this.jobList;}


        private List<String> fuzzyJob;

        public List<String> getFuzzyJob(){return this.fuzzyJob;}

        private List<String> rightFuzzyJob;

        public List<String> getRightFuzzyJob(){return this.rightFuzzyJob;}
        private List<Integer> mgrList;

        public List<Integer> getMgrList(){return this.mgrList;}

        private Integer mgrSt;

        private Integer mgrEd;

        public Integer getMgrSt(){return this.mgrSt;}

        public Integer getMgrEd(){return this.mgrEd;}

        private List<java.time.LocalDate> hiredateList;

        public List<java.time.LocalDate> getHiredateList(){return this.hiredateList;}

        private java.time.LocalDate hiredateSt;

        private java.time.LocalDate hiredateEd;

        public java.time.LocalDate getHiredateSt(){return this.hiredateSt;}

        public java.time.LocalDate getHiredateEd(){return this.hiredateEd;}

        private List<java.math.BigDecimal> salList;

        public List<java.math.BigDecimal> getSalList(){return this.salList;}

        private java.math.BigDecimal salSt;

        private java.math.BigDecimal salEd;

        public java.math.BigDecimal getSalSt(){return this.salSt;}

        public java.math.BigDecimal getSalEd(){return this.salEd;}

        private List<java.math.BigDecimal> commList;

        public List<java.math.BigDecimal> getCommList(){return this.commList;}

        private java.math.BigDecimal commSt;

        private java.math.BigDecimal commEd;

        public java.math.BigDecimal getCommSt(){return this.commSt;}

        public java.math.BigDecimal getCommEd(){return this.commEd;}

        private List<Integer> deptnoList;

        public List<Integer> getDeptnoList(){return this.deptnoList;}

        private Integer deptnoSt;

        private Integer deptnoEd;

        public Integer getDeptnoSt(){return this.deptnoSt;}

        public Integer getDeptnoEd(){return this.deptnoEd;}


        public ConditionBuilder empnoBetWeen(Integer empnoSt,Integer empnoEd){
            this.empnoSt = empnoSt;
            this.empnoEd = empnoEd;
            return this;
        }

        public ConditionBuilder empnoGreaterEqThan(Integer empnoSt){
            this.empnoSt = empnoSt;
            return this;
        }
        public ConditionBuilder empnoLessEqThan(Integer empnoEd){
            this.empnoEd = empnoEd;
            return this;
        }


        public ConditionBuilder empnoList(Integer ... empno){
            this.empnoList = solveNullList(empno);
            return this;
        }

        public ConditionBuilder empnoList(List<Integer> empno){
            this.empnoList = empno;
            return this;
        }

        public ConditionBuilder fuzzyEname (List<String> fuzzyEname){
            this.fuzzyEname = fuzzyEname;
            return this;
        }

        public ConditionBuilder fuzzyEname (String ... fuzzyEname){
            this.fuzzyEname = solveNullList(fuzzyEname);
            return this;
        }

        public ConditionBuilder rightFuzzyEname (List<String> rightFuzzyEname){
            this.rightFuzzyEname = rightFuzzyEname;
            return this;
        }

        public ConditionBuilder rightFuzzyEname (String ... rightFuzzyEname){
            this.rightFuzzyEname = solveNullList(rightFuzzyEname);
            return this;
        }

        public ConditionBuilder enameList(String ... ename){
            this.enameList = solveNullList(ename);
            return this;
        }

        public ConditionBuilder enameList(List<String> ename){
            this.enameList = ename;
            return this;
        }

        public ConditionBuilder fuzzyJob (List<String> fuzzyJob){
            this.fuzzyJob = fuzzyJob;
            return this;
        }

        public ConditionBuilder fuzzyJob (String ... fuzzyJob){
            this.fuzzyJob = solveNullList(fuzzyJob);
            return this;
        }

        public ConditionBuilder rightFuzzyJob (List<String> rightFuzzyJob){
            this.rightFuzzyJob = rightFuzzyJob;
            return this;
        }

        public ConditionBuilder rightFuzzyJob (String ... rightFuzzyJob){
            this.rightFuzzyJob = solveNullList(rightFuzzyJob);
            return this;
        }

        public ConditionBuilder jobList(String ... job){
            this.jobList = solveNullList(job);
            return this;
        }

        public ConditionBuilder jobList(List<String> job){
            this.jobList = job;
            return this;
        }

        public ConditionBuilder mgrBetWeen(Integer mgrSt,Integer mgrEd){
            this.mgrSt = mgrSt;
            this.mgrEd = mgrEd;
            return this;
        }

        public ConditionBuilder mgrGreaterEqThan(Integer mgrSt){
            this.mgrSt = mgrSt;
            return this;
        }
        public ConditionBuilder mgrLessEqThan(Integer mgrEd){
            this.mgrEd = mgrEd;
            return this;
        }


        public ConditionBuilder mgrList(Integer ... mgr){
            this.mgrList = solveNullList(mgr);
            return this;
        }

        public ConditionBuilder mgrList(List<Integer> mgr){
            this.mgrList = mgr;
            return this;
        }

        public ConditionBuilder hiredateBetWeen(java.time.LocalDate hiredateSt,java.time.LocalDate hiredateEd){
            this.hiredateSt = hiredateSt;
            this.hiredateEd = hiredateEd;
            return this;
        }

        public ConditionBuilder hiredateGreaterEqThan(java.time.LocalDate hiredateSt){
            this.hiredateSt = hiredateSt;
            return this;
        }
        public ConditionBuilder hiredateLessEqThan(java.time.LocalDate hiredateEd){
            this.hiredateEd = hiredateEd;
            return this;
        }


        public ConditionBuilder hiredateList(java.time.LocalDate ... hiredate){
            this.hiredateList = solveNullList(hiredate);
            return this;
        }

        public ConditionBuilder hiredateList(List<java.time.LocalDate> hiredate){
            this.hiredateList = hiredate;
            return this;
        }

        public ConditionBuilder salBetWeen(java.math.BigDecimal salSt,java.math.BigDecimal salEd){
            this.salSt = salSt;
            this.salEd = salEd;
            return this;
        }

        public ConditionBuilder salGreaterEqThan(java.math.BigDecimal salSt){
            this.salSt = salSt;
            return this;
        }
        public ConditionBuilder salLessEqThan(java.math.BigDecimal salEd){
            this.salEd = salEd;
            return this;
        }


        public ConditionBuilder salList(java.math.BigDecimal ... sal){
            this.salList = solveNullList(sal);
            return this;
        }

        public ConditionBuilder salList(List<java.math.BigDecimal> sal){
            this.salList = sal;
            return this;
        }

        public ConditionBuilder commBetWeen(java.math.BigDecimal commSt,java.math.BigDecimal commEd){
            this.commSt = commSt;
            this.commEd = commEd;
            return this;
        }

        public ConditionBuilder commGreaterEqThan(java.math.BigDecimal commSt){
            this.commSt = commSt;
            return this;
        }
        public ConditionBuilder commLessEqThan(java.math.BigDecimal commEd){
            this.commEd = commEd;
            return this;
        }


        public ConditionBuilder commList(java.math.BigDecimal ... comm){
            this.commList = solveNullList(comm);
            return this;
        }

        public ConditionBuilder commList(List<java.math.BigDecimal> comm){
            this.commList = comm;
            return this;
        }

        public ConditionBuilder deptnoBetWeen(Integer deptnoSt,Integer deptnoEd){
            this.deptnoSt = deptnoSt;
            this.deptnoEd = deptnoEd;
            return this;
        }

        public ConditionBuilder deptnoGreaterEqThan(Integer deptnoSt){
            this.deptnoSt = deptnoSt;
            return this;
        }
        public ConditionBuilder deptnoLessEqThan(Integer deptnoEd){
            this.deptnoEd = deptnoEd;
            return this;
        }


        public ConditionBuilder deptnoList(Integer ... deptno){
            this.deptnoList = solveNullList(deptno);
            return this;
        }

        public ConditionBuilder deptnoList(List<Integer> deptno){
            this.deptnoList = deptno;
            return this;
        }

        private <T>List<T> solveNullList(T ... objs){
            if (objs != null){
            List<T> list = new ArrayList<>();
                for (T item : objs){
                    if (item != null){
                        list.add(item);
                    }
                }
                return list;
            }
            return null;
        }

        public ConditionBuilder build(){return this;}
    }

    public static class Builder {

        private emp obj;

        public Builder(){
            this.obj = new emp();
        }

        public Builder empno(Integer empno){
            this.obj.setEmpno(empno);
            return this;
        }
        public Builder ename(String ename){
            this.obj.setEname(ename);
            return this;
        }
        public Builder job(String job){
            this.obj.setJob(job);
            return this;
        }
        public Builder mgr(Integer mgr){
            this.obj.setMgr(mgr);
            return this;
        }
        public Builder hiredate(java.time.LocalDate hiredate){
            this.obj.setHiredate(hiredate);
            return this;
        }
        public Builder sal(java.math.BigDecimal sal){
            this.obj.setSal(sal);
            return this;
        }
        public Builder comm(java.math.BigDecimal comm){
            this.obj.setComm(comm);
            return this;
        }
        public Builder deptno(Integer deptno){
            this.obj.setDeptno(deptno);
            return this;
        }
        public emp build(){return obj;}
    }

}
